home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / inputs / fontsel / array.sty < prev    next >
Text File  |  1991-05-20  |  8KB  |  262 lines

  1. %% 
  2. %% This is file `array.sty' generated
  3. %% on <1990/6/30> with the docstrip utility (v1.1k). 
  4. %% 
  5. %% The original source file was `array.doc'.
  6. %% 
  7. %% 
  8. %% Copyright (C) 1989,1990 by Frank Mittelbach, Rainer Schoepf. 
  9. %% All rights reserved. 
  10. %% 
  11. %% IMPORTANT NOTICE: 
  12. %% 
  13. %% You are not allowed to change this file. You may however copy this file 
  14. %% to a file with a different name and then change the copy. 
  15. %% 
  16. %% You are allowed to distribute this file under the condition that it is 
  17. %% distributed together with all files mentioned in readme.mz3. If you 
  18. %% receive only some of these files from someone, complain! 
  19. %% 
  20. %% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED 
  21. %% to take money for the distribution or use of either this file or a 
  22. %% changed version, except for a nominal charge for copying etc. 
  23. %% 
  24. %% Error Reports in case of UNCHANGED versions to 
  25. %% 
  26. %% F. Mittelbach 
  27. %% Eichenweg 29 
  28. %% D-6500 Mainz 1 
  29. %% Federal Republic of Germany 
  30. %% Bitnet: <PZF5HZ@DRUEDS2> 
  31. %% 
  32. %% or: 
  33. %% R. Sch\"opf 
  34. %% Inst. f. Theor. Physik 
  35. %% der Universit\"at Heidelberg 
  36. %% Philosophenweg 16 
  37. %% D-6900 Heidelberg 
  38. %% Federal Republic of Germany 
  39. %% Bitnet: <BK4@DHDURZ1> 
  40. %% 
  41. %% 
  42.  
  43. \def\fileversion{v2.0b}
  44. \def\filedate{89/5/17}
  45. \def\docdate {89/5/12}
  46.  
  47.  
  48.  
  49. \@ifundefined{d@llar}{}{\endinput}
  50. \typeout{Style-Option: `array' \fileversion
  51.          \space\space <\filedate> (F.M.)}
  52. \typeout{English documentation dated \space <\docdate> (F.M.)}
  53.  
  54. \def\@addtopreamble#1{\xdef\@preamble{\@preamble #1}}
  55. \def\@testpach#1{\@chclass
  56.  \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  57.   \ifnum \@lastchclass=7 5 \else
  58.    \ifnum \@lastchclass=8 \tw@ \else
  59.     \ifnum \@lastchclass=9 \thr@@
  60.    \else \z@
  61.    \ifnum \@lastchclass = 10 \else
  62.    \@chnum
  63.    \if #1c\z@ \else
  64.     \if #1l\@ne \else
  65.      \if #1r\tw@ \else
  66.    \z@ \@chclass
  67.    \if#1|\@ne \else
  68.     \if #1!6 \else
  69.      \if #1@7 \else
  70.       \if #1<8 \else
  71.        \if #1>9 \else
  72.   10
  73.   \@chnum
  74.   \if #1m\thr@@\else
  75.    \if #1p4 \else
  76.     \if #1b5 \else
  77.    \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
  78.    \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi}
  79. \def\@xexpast#1*#2#3#4\@@{%
  80.    \@tempcnta #2
  81.    \toks@={#1}\@temptokena={#3}%
  82.    \let\the@toksz\relax \let\the@toks\relax
  83.    \def\@tempa{\the@toksz}%
  84.    \ifnum\@tempcnta >0 \@whilenum\@tempcnta >0\do
  85.      {\edef\@tempa{\@tempa\the@toks}\advance \@tempcnta \m@ne}%
  86.        \let \@tempb \@xexpast \else
  87.        \let \@tempb \@xexnoop \fi
  88.    \def\the@toksz{\the\toks@}\def\the@toks{\the\@temptokena}%
  89.    \edef\@tempa{\@tempa}%
  90.    \expandafter \@tempb \@tempa #4\@@}
  91. \def\prepnext@tok{\advance \count@ \@ne
  92.    \toks\count@={}}
  93. \def\save@decl{\toks \count@ = \expandafter
  94.       {\expandafter \relax \@nextchar}}
  95. \def\insert@column{%
  96.    \the@toks \the \@tempcnta
  97.    \ignorespaces \@sharp \unskip
  98.    \the@toks \the \count@}
  99.  
  100. \newdimen\col@sep
  101. \def\@acol{\@addtopreamble{\hskip\col@sep}}
  102. \def\@mkpream#1{\gdef\@preamble{}\@lastchclass 4 \@firstamptrue
  103.    \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
  104.    \@xexpast #1*0x\@@
  105.    \count@\m@ne
  106.    \let\the@toks\relax
  107.    \prepnext@tok
  108.    \expandafter \@tfor \expandafter \@nextchar
  109.     \expandafter :\expandafter =\@tempa \do
  110.    {\@testpach\@nextchar
  111.    \ifcase \@chclass \@classz \or \@classi \or \@classii
  112.      \or \save@decl \or \or \@classv \or \@classvi
  113.      \or \@classvii \or \@classviii  \or \@classix
  114.      \or \@classx \fi
  115.    \@lastchclass\@chclass}%
  116.    \ifcase\@lastchclass
  117.    \@acol \or
  118.    \or
  119.    \@acol \or
  120.    \@preamerr \thr@@ \or
  121.    \@preamerr \tw@ \@addtopreamble\@sharp \or
  122.    \or
  123.    \else  \@preamerr \@ne \fi
  124.    \def\the@toks{\the\toks}}
  125. \def\@classx{%
  126.   \ifcase \@lastchclass
  127.   \@acolampacol \or
  128.   \@addamp \@acol \or
  129.   \@acolampacol \or
  130.   \or
  131.   \@acol \@firstampfalse \or
  132.   \@addamp
  133.   \fi}
  134. \def\@classz{\@classx
  135.    \@tempcnta \count@
  136.    \prepnext@tok
  137.    \@addtopreamble{\ifcase \@chnum
  138.       \hfil
  139.       \d@llar
  140.       \insert@column
  141.       \d@llar \hfil \or
  142.       \d@llar \insert@column \d@llar \hfil \or
  143.       \hfil\kern\z@ \d@llar \insert@column \d@llar \or
  144.    $\vcenter
  145.    \@startpbox{\@nextchar}\insert@column \@endpbox $\or
  146.    \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
  147.    \vbox \@startpbox{\@nextchar}\insert@column \@endpbox
  148.   \fi}\prepnext@tok}
  149. \def\@classix{\ifnum \@lastchclass = \thr@@
  150.        \@preamerr \thr@@ \fi
  151.        \@classx}
  152. \def\@classviii{\ifnum \@lastchclass >\z@
  153.       \@preamerr 4\@chclass 6 \@classvi \fi}
  154. \def\@arrayrule{\@addtopreamble \vline}
  155. \def\@classvii{\ifnum \@lastchclass = \thr@@
  156.    \@preamerr \thr@@ \fi}
  157. \def\@classvi{\ifcase \@lastchclass
  158.       \@acol \or
  159.       \@addtopreamble{\hskip \doublerulesep}\or
  160.       \@acol \or
  161.       \@classvii
  162.       \fi}
  163. \def\@classii{\advance \count@ \m@ne
  164.    \save@decl\prepnext@tok}
  165.  
  166. \def\@classv{\save@decl
  167.    \@addtopreamble{\d@llar\the@toks\the\count@\d@llar}%
  168.    \prepnext@tok}
  169. \def\@classi{\@classvi
  170.    \ifcase \@chnum \@arrayrule \or
  171.       \@classv \fi}
  172. \def\@startpbox#1{\bgroup
  173.   \hsize #1 \@arrayparboxrestore
  174.    \vrule \@height \ht\@arstrutbox \@width \z@}
  175.  
  176. \def\@endpbox{\vrule \@width \z@ \@depth \dp \@arstrutbox \egroup}
  177. \def\@array[#1]#2{%
  178.   \@tempdima \ht \strutbox
  179.   \advance \@tempdima by\extrarowheight
  180.   \setbox \@arstrutbox \hbox{\vrule
  181.              \@height \arraystretch \@tempdima
  182.              \@depth \arraystretch \dp \strutbox
  183.              \@width \z@}%
  184.   \begingroup
  185.   \@mkpream{#2}%
  186.   \xdef\@preamble{\ialign \@halignto
  187.                   \bgroup \@arstrut \@preamble
  188.                           \tabskip \z@ \cr}%
  189.   \endgroup
  190.   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
  191.   \bgroup
  192.   \let \@sharp ##\let \protect \relax
  193.   \lineskip \z@
  194.   \baselineskip \z@
  195.   \m@th
  196.   \let\\ \@arraycr  \let\par\@empty \@preamble}
  197.  
  198. \newdimen \extrarowheight
  199. \extrarowheight=0pt
  200. \def\@arstrut{\unhcopy\@arstrutbox}
  201. \def\@arraycr{{\ifnum 0=`}\fi
  202.   \@ifstar \@xarraycr \@xarraycr}
  203.  
  204. \def\@xarraycr{\@ifnextchar [%
  205.   \@argarraycr {\ifnum 0=`{\fi}\cr}}
  206.  
  207. \def\@argarraycr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@
  208.   \@xargarraycr{#1}\else \@yargarraycr{#1}\fi}
  209. \def\@xargarraycr#1{\unskip
  210.   \@tempdima #1\advance\@tempdima \dp\@arstrutbox
  211.   \vrule \@depth\@tempdima \@width\z@ \cr}
  212. \def\@yargarraycr#1{\cr\noalign{\vskip #1}}
  213.  
  214. \def\multicolumn#1#2#3{%
  215.    \multispan{#1}\begingroup
  216.    \def\@addamp{\if@firstamp \@firstampfalse \else
  217.                 \@preamerr 5\fi}%
  218.    \@mkpream{#2}\@addtopreamble\@empty
  219.    \endgroup
  220.    \def\@sharp{#3}%
  221.    \@arstrut \@preamble \ignorespaces}
  222.  
  223. \def\array{\col@sep\arraycolsep
  224.   \gdef\d@llar{$}\gdef\@halignto{}%
  225.   \@tabarray}
  226.  
  227. \def\@tabarray{\@ifnextchar[{\@array}{\@array[c]}}
  228.  
  229. \def\tabular{\gdef\@halignto{}\@tabular}
  230. \expandafter\def\csname tabular*\endcsname#1{%
  231.       \gdef\@halignto{to#1}\@tabular}
  232.  
  233. \def\@tabular{%
  234.   \leavevmode
  235.   \hbox \bgroup $\col@sep\tabcolsep \gdef\d@llar{}%
  236.   \@tabarray}
  237.  
  238. \def\endarray{\crcr \egroup \egroup \gdef\@preamble{}}
  239.  
  240. \def\endtabular{\endarray $\egroup}
  241. \expandafter\let\csname endtabular*\endcsname=\endtabular
  242.  
  243. \let\@ampacol=\relax        \let\@expast=\relax
  244. \let\@arrayclassiv=\relax   \let\@arrayclassz=\relax
  245. \let\@tabclassiv=\relax     \let\@tabclassz=\relax
  246. \let\@arrayacol=\relax      \let\@tabacol=\relax
  247. \let\@tabularcr=\relax      \let\@@endpbox=\relax
  248. \let\@argtabularcr=\relax   \let\@xtabularcr=\relax
  249. \def\@preamerr#1{\def\@tempd{{..} at wrong position: }%
  250.    \@latexerr{%
  251.    \ifcase #1 Illegal pream-token (\@nextchar): `c' used\or %0
  252.     Missing arg: token ignored\or                           %1
  253.     Empty preamble: `l' used\or                             %2
  254.     >\@tempd token ignored\or                               %3
  255.     <\@tempd changed to !{..}\or                            %4
  256.     Only one colum-spec. allowed.\fi}\@ehc}                 %5
  257. \def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\@empty
  258.       \else\@tforloop#2\@nil\@nil\@@#1{#3}\fi}
  259. \endinput
  260. %% 
  261. %% End of file `array.sty'.
  262.